﻿(function ($) {

	$.smarlyMessage = function () {
		var message = $.cookie('message');
		if (message != null) {
			$.removeCookie('message', { path: '/' });
			var params = message.split('`');
			if (params.length > 0 && messages.hasOwnProperty(params[0])) {
				var modal = $.extend(true, {}, messages[params[0]]);
				for (var i = 1; i < params.length; i++) {
					var string;
					if (modal.bodyText != null && modal.bodyText.hasOwnProperty(i)) {
						string = params[i] != 0 ? modal.bodyText[i] : '';
					} else {
						string = params[i];
					}
					
					if (modal.bodyText != null) {
						for (key in modal.bodyText) {
							modal.bodyText[key] = modal.bodyText[key].replace(new RegExp('#' + i + '#', 'gmi'), string);
						}
					}

					modal.body = modal.body.replace(new RegExp('#' + i + '#', 'gmi'), string);
				}
				
				for (key in modal.bodyText) {
					modal.body = modal.body.replace(new RegExp('#' + key + '#', 'gmi'), modal.bodyText[key]);
				}

				modal.body = $(modal.body);

				$('[data-subscribe]', modal.body).click(function (e) {
					e.preventDefault();

					$.ajax({
						type: 'POST',
						url: '/subscribe',
						data: { Email: $(this).data('subscribe') },
						dataType: 'json',
						success: function (data) {
							if (data.error == null) {
								$.SmarlyModal.show({
									header: data.title,
									body: $('<p/>').append(data.message),
									showCancelBtn: false,
									applyBtnName: 'Закрыть',
								});
							}
						},
					});
					$(this).closest('div.modal').modal('hide');
				});

				$('[data-message-error]', modal.body).click(function (e) {
					e.preventDefault();

					$.ajax({
						type: 'POST',
						url: '/notification/messageerror',
						data: { Message: $(this).data('message-error') },
						dataType: 'json',
						success: function (data) {
							if (data.error == null) {
								$.SmarlyModal.show({
									header: data.title,
									body: $('<p/>').append(data.message),
									showCancelBtn: false,
									applyBtnName: 'Закрыть',
								});
							}
						},
					});
					$(this).closest('div.modal').modal('hide');
				});

				$.SmarlyModal.show(modal);
			}
		}
	};

	var messages = {
		80: {
			header: 'Ссылка не корректна',
			body: '<p>Ссылка по которой вы попали к нам, оказалась не верной.</p><p>На текущей странице мы отобразили для вас список книг и их глав.</p><p>Мы надеемся что данная страница поможет вам найти интересующую вас информацию.</p>',
			showCancelBtn: false,
			applyBtnName: 'Закрыть',
		},
		100: {
			header: 'Благодарим вас за поддержку!',
			body: '<p>Оплата прошла успешно. Надеемся, что изучение книг на <a target="_blank" href="/">smarly.net</a> принесет вам полезную информацию.</p><p>По каким-либо вопросам вы всегда сможете связаться с нами по контактам, указанным на странице <a target="_blank" href="/about">О нас</a></p><p>Приятного чтения!</p>#2#',
			bodyText: {
				2: '<p>Вы всегда будете в курсе наших последних публикаций, подписавшись на нашу рассылку внизу любого раздела, либо <a data-subscribe="#1#">прямо сейчас</a></p>'
			},
			showCancelBtn: false,
			applyBtnName: 'Закрыть',
		},
		101: {
			header: 'Благодарим вас за покупку!',
			body: '<p>Оплата главы <strong>#1#</strong> прошла успешно. В ближайшее время мы вам сообщим о публикации письмом на ваш почтовый ящик <strong>&lt;#2#&gt;</strong></p><p>По каким-либо вопросам вы всегда сможете связаться с нами по контактам, указанным на странице <a target="_blank" href="/about">О нас</a></p>#3#',
			bodyText: {
				3: '<p>Вы всегда будете в курсе наших последних публикаций, подписавшись на нашу рассылку на главной странице, либо <a data-subscribe="#2#">прямо сейчас</a></p>'
			},
			showCancelBtn: false,
			applyBtnName: 'Закрыть',
		},
		110: {
			header: 'Нам очень жаль, но произошла ошибка!',
			body: '<p>Конечно, очень печально, что произошла ошибка. Мы уже извещены об этом, и в ближайшее время обязательно устраним ее.</p><p>Возможно, вы захотите узнать результаты этой проблемы. Для этого вам надо всего лишь нажать на эту <a data-message-error="#1#">ссылочку</a></p>',
			showCancelBtn: false,
			applyBtnName: 'Закрыть',
		},
		111: {
			header: 'Вы отклонили авторизацию smarly.net',
			body: '<p>Вы отклонили наше приложение, в этом нет ничего страшного.</p><p>Возможно, вы передумали делать у нас покупку, и мы уважем вас за ваш выбор. Своей работой мы постараемся развеять ваши сомнения.</p><p>А, возможно, вы случайно нажали на кнопку. В таком случае, вы всегда можете повторить попытку.</p><p>Хотим отметить тот факт, что мы запрашиваем разрешение только на <strong>единоразовый</strong> платеж, и у нас <strong>нет</strong> возможности узнать ваши конфиденциальные данные и каким-либо образом управлять ими.</p>',
			showCancelBtn: false,
			applyBtnName: 'Закрыть',
		},
		112: {
			header: 'Не достаточно средств',
			body: '<p>Платежная система сообщила нам, что у вас не достаточно средств на счету.</p><p>Мы подождем, пока вы пополните ваш платежный баланс, и всегда будем рады видеть вас снова.</p>',
			showCancelBtn: false,
			applyBtnName: 'Закрыть',
		},
		113: {
			header: 'Ошибка платежа',
			body: '<p>Платежная система сообщила нам следующее: "Запрошенный метод платежа недоступен для данного платежа".</p><p>Мы не знаем, что это такое, но считаем долгом известить вас об этом.</p>',
			showCancelBtn: false,
			applyBtnName: 'Закрыть',
		},
		114: {
			header: 'Ошибка авторизации платежной системы',
			body: '<p>В авторизации платежа отказано. Возможные причины:</p><ol><li>истек срок действия банковской карты</li><li>банк-эмитент отклонил транзакцию по карте</li><li>превышен лимит платежной системы для данного пользователя</li></ol>',
			showCancelBtn: false,
			applyBtnName: 'Закрыть',
		},
		
		300: {
			header: 'Обращаем ваше внимание!',
			body: '<p>Текст, которым поделился пользователь, будет доступен <i>только</i> до закрытия браузера.</p><p>Если вы хотите его сохранить в дальнейшем, необходимо <a data-toggle="modal" data-target="#modal-account-logon" data-dismiss="modal" >Авторизоваться</a>.</p>',
			showCancelBtn: false,
			applyBtnName: 'Закрыть',
		},
	};
})(jQuery);